#include "bc_weir_funcs.hpp"
#include "unifiedMathFunctions.hpp"
#include "globals.hpp"

#include <cmath>

namespace hms::bc_weir
{

scalar pressureFactor( scalar alpha ){
	assert(alpha >= 0);
	assert(alpha <= 0.5*math::pi);
	scalar cosAlpha { std::cos(alpha) };
	return max( square(cosAlpha), 0.1 );
}

// void waterDepth_edge(
// 	Ref<Array1Xs> d_e, // out-parameter
// 	const Ref<Array1Xs>& d,
// 	const Ref<Array1Xs>& vOrth,
// 	scalar cp // = pressure factor
// ){
// 	/* write Froude squares first, then go from there */
// 	Ref<Array1Xs>& fr { d_e };
// 	fr = vOrth.square() / ( phys::g * d );

// 	d_e =
// 		- sqrt( (4 + 8*fr) / (3*cp) ) *
// 		cos(
// 			acos( -3 * sqrt(3.) * sqrt(cp) * fr / (1 + 2*fr).pow(1.5) ) / 3.
// 			+ math::pi / 3
// 		) * d;
// }

} // namespace hms::bc_weir
